<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <button @click="showStore">显示仓库内容</button>
        <h1>{{this.$store.state.counter}}</h1>
        <button @click="add">加一</button>
    </div>

    <script src="./node_modules/vue/dist/vue.js"></script>
    <!-- 1引入vuex的依赖 -->
    <script src="./node_modules/vuex/dist/vuex.js"></script>
    <script>
        //2创建仓库
        let ABC="increment";
        let store =new Vuex.Store({
               //a1 state仓库中心的数据 也是状态
               state:{
                   counter:888
               },
               //a2 mutations改变值的操作
               mutations:{
                 [ABC]:function(state,{payload}){//传入状态
                   state.counter +=payload.count ;
                 }
               }
        })
        //Vue.use(Vuex);//初始化vue并且在vue实例上添加了￥store属性 所以可以在$store上查看很多东西
        let vm =new Vue({
            //3 将仓库配置放进vue里
            store,
            el:"#app",
            data:{
               
            },
            methods:{
                showStore:function(){
                    console.log(this.$store);
                },
                add:function(){
                    //this.$store.state.counter += 1; 直接修改状态没有提交 不符合使用vuex的初衷
                    //提交commit 修改数据
                    this.$store.commit({
                        type:ABC,
                        payload:{
                            count:10
                        }
                    })
                }
            }
        })
    </script>
    
</body>
</html>